/******************************************************************************
 * Define common types
 *
 * Description:
 *
 * Different microprocessors and compilers use different length
 * intrinsic values. The values defined here are universal.
 * 
 * Author:
 *  Tom Bullinger 								(09/07/2011)	Initial creation
 *  Philip Rodriguez, Oliver Wing, Alfred Lee	(10/30/11)		Updated for project 6
 *
 *****************************************************************************/

#ifndef __TYPES_H
#define __TYPES_H

// Signed 8-bit Type
#ifndef INT8
typedef signed char         INT8;
#endif

// Signed 16-bit Type
#ifndef INT16
typedef signed int          INT16;
#endif

// Signed 32-bit Type
#ifndef INT32
typedef signed long int     INT32;
#endif

// Unsigned 8-bit Type
#ifndef UINT8
typedef unsigned char       UINT8;
#endif

// Unsigned 16-bit Type
#ifndef UINT16
typedef unsigned int        UINT16;
#endif

// Unsigned 32-bit Type
#ifndef UINT32
typedef unsigned long int   UINT32;
#endif

// Unsigned 64-bit Type
#ifndef UINT64
typedef unsigned long long int   UINT64;
#endif

// Boolean Type
#ifndef bool

typedef UINT8 bool;

#ifndef true
#define true	((bool) 1)
#endif // true
#ifndef false
#define false	((bool) 0)
#endif // false

#endif //bool

// The Neutrino IO port used here corresponds to a
// single register which is one byte long
#ifndef PORT_LENGTH
#define PORT_LENGTH						(0x01)
#endif

#endif //__TYPES_H
